Fix dead actor accumulation in CDP #1091
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I realized that in the
CarlaDataProvider._carla_actor_pool
more and more dead actors accumulated over time when scenarios run. The reason is that actors are created over the CDP and are added to the pool, however, they are not destroyed over the CDP.I think I located most of the locations where this is the case - however I think there is still at least one missing.
As a side result it the
remove_actor_by_id
function is now also slightly more informative. If the return value isNone
the users needs to take care of the destruction.I also propose an update to the
CarlaDataProvider._actor_[velocity, location, transform]_map
, while this new code is in itself more expensive it was in the long run still faster as the sizes were overall smaller. Of course, just talking about a few ms.Tested on
This change is